Method, system, and computer program product for implementing multi-power domain digital /  mixed signal verification and low power simulation

ABSTRACT

Disclosed are a method, system, and computer program product for implementing various embodiments of the methods for implementing multi-power domain digital or mixed-signal verification and low power simulation. The method or the system comprises automatically generating one or more net or terminal expression, set, or one or more overriding net or terminal expression by reading, importing, or interpreting the power data file for the electronic circuit design; identifying one or more schematics of the electronic circuit design; generating an annotated schematic of the electronic circuit design by automatically annotating at least one of the one or more schematics with some of the one or more net or terminal expression, set, or one or more overriding net or terminal expression; and performing verification of the electronic circuit design by using at least the annotated schematic.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/291,199, filed on Dec. 30, 2009, the entiredisclosure of which is expressly incorporated by reference here. Certainaspects in some embodiments of this application are related to anddisclosed in U.S. App. Ser. No. ______, Atty. Dkt. No. 09PA011US01,entitled “METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR IMPLEMENTINGMULTI-POWER DOMAIN DIGITAL/MIXED-SIGNAL VERIFICATION AND LOW POWERSIMULATION” and filed concurrently, the contents of both applicationsare expressly incorporated by reference in their entirety in thisapplication.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material,which is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND

Physical verification is very critical to the success of the chipdesign. One of the most important key steps to perform physicalverification on the layout design is to verify that the layout matchesthe schematic. This is so called LVS (layout-versus-schematic), whichinvolves checking the consistency between the original schematic netlistand the one extracted from the layout. Because of the design reuse andthe implementation of the multiple power/ground domains, VDD (or V_(DD),both designating the positive power supply voltage in field effecttransistors or unipolar transistors) and GND (ground) are designed asglobal nets, but they are not globally connected throughout the chip.The standard LVS flow, which verifies VDD and GND as global nets, may nolonger be functional.

LVS is one of the most important physical verification steps inintegrated circuit (IC) design. It serves to check the equivalency of alayout design against the corresponding schematic design. If the twodesigns are equivalent under the given LVS rule deck (LVS runset), thenthe LVS result is said to be “LVS clean”. LVS tools first generate anetlist based on extracting the connectivity of an input layout streamfile. The extracted netlist is then compared to the schematic netlist toensure the two views match.

Power nets are typically globally connected throughout the design, andso are the ground nets. VDD and GND are designed as global nets at theblock level, which is done to simplify the schematic level designprocess; treating them as local nets would require creating specifichierarchical ports for VDD and GND within each schematic. At thefull-chip level, however, under the multiple power/ground domainsscenario VDD and GND can no longer be treated as global nets. LVSmethodology for the block level now fails at the full-chip level. Forexample, a short on GND between different processor cores cannot bedetected because GND is considered to be global. The design team neededan LVS methodology that enabled each block to be independently verifiedduring the development. They also needed the LVS flow to be capable ofverifying the integrity of the chip level power grid with minimum impactin altering the design.

In hierarchical LVS, layout text is viewed hierarchically. In aschematic netlist, nets listed as global are assumed to be connectedthroughout the design during netlist comparison. Similarly, nets definedas global in layout are treated as global during netlist extraction.Global net names are dispersed through connections up the hierarchy.Local or non-global nets only specify a net's value for a particularhierarchical level. If two or more texts are attached to one net, LVSreports this as a short. A text open is reported, if different physicalnets have the same text.

Multi-power-domain LVS is the second phase of the LVS flow, whichtargets verifying the integrity of the chip-level power grid. Unlike thestandard-LVS, in which VDD and GND are treated as global names,multi-power-domain LVS analyzes power and ground nets as local nets. Anetlist parser is implemented to create a schematic netlist withlocalized VDD and GND nets, and also the multipower-domain power andground names are added as ports at the appropriate level of netlisthierarchy based on the information provided in a configuration file. Theactual multi-power-domain power and ground names labeled at the bumpsare used in the second phase LVS. Hence, any opens or shorts on thepower-grid will be reported upon completing the multi-power-domain LVSverification.

In the design of integrated circuits, saving power has become one of theprimary goals, and designers are usually forced to use sophisticatedtechniques such as clock gating, multi-voltage logic, and turning offthe power entirely to inactive blocks. Recent development inpower-saving techniques have resulted in the Si2 Common Power Format(CPF) and subsequently the IEEE Unified Power Format (UPF), both ofwhich are file formats for specifying power-saving techniques early inthe design process. These techniques require a consistent implementationin the design steps of logic design, implementation, and verification.

For example, if multiple different power supplies are used, then logicsynthesis must insert level shifters, place and route must deal withthem correctly, and other tools such as static timing analysis (STA) andformal verification must understand these components. As power became anincreasingly pressing concern, each tool independently added thefeatures needed. Although this makes it possible to build low powerflows, it was difficult and error prone since the same informationneeded to be specified several times, in several formats, to manydifferent tools. CPF and UPF were created as common formats that manytools can use to specify power-specific data, so that power intent onlyneed be entered once and can be used consistently by all tools. The aimof CPF and UPF is to support an automated, power-aware designinfrastructure, and a CPF or an UPF power connection expects power andground terminals within an instantiated components.

Another challenge in electronic design occurs when transistor levelnetlist of the components instantiated within a digital or mixed-signalblock do not have power and ground terminals, but rather have someglobal signal decorated with a special property placed on a net orterminal to define its connectivity, while the power connectivity of thedigital or mixed-signal block is described by, for example, a CPF or anUPF file. Such a special property may be, for example, a net expressionor an oaNetConnectDef or oaTermConnectDef for OpenAccess (OA) by theOpenAccess Coalition (hereinafter a net/terminal expression or a net orterminal expression). The challenge arises when generating transistornetlist from the digital or mixed-signal block when trying to connectpower and ground nets of the components transistor level netlists to theCPF or UPF based power and ground nets which have multiple powerdomains.

For example, the traditional approach outputs reference cell schematicswith global power and ground nets (such as using a CDL (circuitdescription language)-out function in some EDA (electronic designautomation) tools. This traditional approach then outputs the logicalHDL model (such as a Verilog model), and then feeds thelayout-versus-schematic (LVS) tool with the digital or mixed-signalblock CDL netlist and layout. The issues with this traditional approachis that this traditional approach does not work if two instances of thesame reference cell are to be connected to two different domains becausethese two instances would share the same CDL netlist with the sameglobal power and ground nets.

Various approaches have been proposed to solve the aforementionedchallenges. One of the approaches uses scripts to automatically addpower and ground terminals to the reference cell schematics and thenuses the RTL compiler or an RTL to GDSII tool to dump the physical HDLmodel (such as a Verilog model). This approach then uses, for example, aschematic editor to import the physical Verilog model and performsCDL-out. The drawbacks of this approach is that the reference cellschematics are often considered as golden and do not allow changes.Moreover, the addition of power and ground terminals to each referencecell schematic is cumbersome, especially for analog IP (intellectualproperty) schematics.

Another approach uses the RTL compiler or the RTL to GDSII tool to dumpthe physical Verilog model, and then uses scripts to translate thephysical Verilog model into a Verilog (for example, a netSet-based oroaAssignment-based Verilog) based on one or more lookup properties orone or more overriding properties of one or more special properties thatare placed on a net or terminal to define its connectivity. Hereinafter,the one or more lookup properties or one or more overriding propertiesof one or more special properties that are placed on one or moreinstances to define their connectivity (such as a netSet or anoaAssignment in OpenAccess by the OpenAccess Coalition) are collectivelyreferred to as a net/terminal set for simplicity in this application,and the one or more special properties that are placed on a net or aterminal to define its connectivity (such as a netExpression, aterminalExpression, or an oaNetConnectDef or oaTermConnectDef forOpenAccess) are collectively referred to as a net/terminal expression ora net or terminal expression. Finally, the approach uses the schematiceditor or other similar EDA tools to perform CDL-OUT.

Another approach performs CDL-OUT for all reference cell schematics withautomatically drilled or placed power and ground terminals or pins andthen uses, for example, a schematic editor to dump the physical Verilog.This approach finally translates the physical Verilog with another toolsuch as a Verilog2CDL. A similar approach uses scripts to post processthe CDL to add power and ground terminals. All these approaches requiremanual addition of the power and ground terminals, modification of thereference cell schematics which are often golden and thus do not allowmodification, do not consider the CPF or UPF files for specifyingpower-saving techniques in the early stages of the design.

SUMMARY

What are needed are a method, a system, and a computer program productfor implementing multi-power domain digital or mixed-signal verificationand low power simulation. In various embodiments, the method or thesystem for implementing multi-power domain digital or mixed-signalverification and low power simulation comprises identifying a power datafile such as a CPF file or a UPF file that specifies power specific dataa hierarchical electronic circuit design with multiple power domains.

The method or the system further comprises identifying a hardwaredescription language model of the hierarchical electronic circuitdesign, reading, importing, or interpreting the power data file, andidentifying schematics of various hierarchies of the hierarchicalelectronic circuit design. The method or the system then automaticallygenerates the net/terminal expressions and net/terminal sets from thepower data file and automatically annotates the various schematics withwhich multiple power domains are associated. The method or the systemmay then perform low power simulation by using the annotated schematics.The method or the system then further identifies a layout of thehierarchical electronic circuit design and performs verification such asthe layout-versus-schematic check.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings illustrate the design and utility of preferred embodimentsof the present invention. It should be noted that the figures are notdrawn to scale and that elements of similar structures or functions arerepresented by like reference numerals throughout the figures. In orderto better appreciate how to obtain the above-recited and otheradvantages and objects of various embodiments of the invention, a moredetailed description of the present inventions briefly described abovewill be rendered by reference to specific embodiments thereof, which areillustrated in the accompanying drawings. Understanding that thesedrawings depict only typical embodiments of the invention and are nottherefore to be considered limiting of its scope, the invention will bedescribed and explained with additional specificity and detail throughthe use of the accompanying drawings in which:

FIG. 1 illustrates a special purpose system for implementing variousembodiments of the methods for implementing multi-power domain digitalor mixed-signal verification and low power simulation.

FIG. 2 illustrates a more detailed diagram for a process forimplementing multi-power domain digital or mixed-signal verification andlow power simulation as illustrated in FIG. 9.

FIG. 3A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in one exemplaryimplementation of some embodiments.

FIG. 4A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments.

FIG. 5A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments.

FIG. 6A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments where the hierarchical electroniccircuit design comprises more hierarchical levels than the example asillustrated in FIGS. 5A-C.

FIG. 7A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments comprising different power domains ondifferent occurrences of the same instance.

FIG. 8 illustrates a block diagram of an illustrative computing systemsuitable for implementing various embodiments of the invention as setforth in the application.

FIG. 9 illustrates a high level diagram for a process for implementingmulti-power domain digital or mixed-signal verification and low powersimulation.

FIG. 10 illustrates more details for the process or module of reading,importing, or interpreting a power data file of FIGS. 2 and 9.

DETAIL DESCRIPTION

Various embodiments of the invention are directed to a method, system,and computer program product for implementing multi-power domaindigital/mixed signal verification and low power simulation in the singleembodiment or in some embodiments. Other objects, features, andadvantages of the invention are described in the detailed description,figures, and claims.

Various embodiments will now be described in detail with reference tothe drawings, which are provided as illustrative examples of theinvention so as to enable those skilled in the art to practice theinvention. Notably, the figures and the examples below are not meant tolimit the scope of the present invention. Where certain elements of thepresent invention can be partially or fully implemented using knowncomponents (or methods or processes), only those portions of such knowncomponents (or methods or processes) that are necessary for anunderstanding of the present invention will be described, and thedetailed descriptions of other portions of such known components (ormethods or processes) will be omitted so as not to obscure theinvention. Further, the present invention encompasses present and futureknown equivalents to the components referred to herein by way ofillustration.

With reference to FIG. 1 which illustrates a special purpose system 108for implementing various embodiments of the methods for implementingmulti-power domain digital or mixed-signal verification and low powersimulation, the special purpose system comprises at least one processorwhich is specifically programmed to perform various processes in variousmethods as described below. The special purpose system may furthercomprise a computer readable storage medium or a computer storage devicefor storing various data and information either temporarily orpermanently prior to, during, or after the performance of variousprocesses as described with reference to various methods below.

More specifically, the special purpose system comprises or isoperatively coupled to a storage device or a computer readable storagemedium 102 which stores thereupon the hierarchical electronic circuitdesign in various formats. In some embodiments, the storage device orthe computer readable storage medium 102 may be located remotely on, forexample, another computing node such as a server. The hierarchicalelectronic design in the storage device or the computer readable storagemedium 102 represents a simplified, hierarchical design with fourhierarchical levels where the top hierarchical, TOP module is at the toplevel of the hierarchy and comprises two instances of the MID modules,MIDi1, and MID i2.

The MID i1 instance of the MID module comprises an instance of the SUBmodule, SUB i1, which further comprises two instances of the sameinverter, INV i1 and INV i2. The two instances of the inverter componentor module, INV i1 and IVN i2, of the SUB i1 instance may be identical ordifferent and may belong to different power domains and thus subject todifferent power (for example, voltages.) Similarly, the instance MID i2also comprises an instance of the SUB module, SUB i1, which alsocomprises two instances of the inverter component or module, INV i1 andINV i2. The two instances of the inverter component or module, INV i1and IVN i2, of the SUB i2 instance may be identical or different and maybelong to different power domains and thus subject to different power(for example, voltages.) Note that this hierarchical design is merelyexemplary and does not intend to limit the scope of various embodimentsby any means.

The special purpose system may also comprise a layout process module 104which generates or identifies the layout for the hierarchical electroniccircuit design 102. The layout process module may also comprise a designrule checking (DRC) module, a layout versus schematic (LVS) module, or acompiler which compiles, for example, an RTL model into, for example, aGDSII format. The layout process module 104 may also comprise a layoutextraction tool that is used generate actual circuit netlist from thelayout. The extracted view may be used to run Layout Versus Schematic(LVS) or to run simulation.

The special purpose system further comprises schematic process module106 which is operatively coupled to the libraries 112 and the power datafile(s) 114. The libraries and the power data file(s) may be located onthe same computing node as the schematic process module 106 or may belocated on one or more different computing nodes. The libraries 112 maycomprise, for example, standard cell reference libraries, basiclibraries, design libraries, basic libraries, etc. A power data file maycomprise a file in the Common Power Format (CPF), the Unified PowerFormat (UPF), or other similar formats.

The schematic process module 106 may also comprise the schematic module110 which identifies, determines, or generates the schematic for theelectronic circuit design of interest. The schematic module 110 may alsobe operatively coupled to the libraries 112 to identify variousschematics for various portions or components in the electronic circuitdesign of interest. The schematic process module further comprises themulti-power domain digital or mixed-signal block module 108 whichreceives the schematics from the schematic process module 110. Themulti-power domain digital or mixed-signal block module 108 may alsoreceive needed libraries from the libraries 112.

The multi-power domain digital or mixed-signal block module 108 furtherreads, imports, or interprets the power data file, such as a commonpower format (CPF) file or a unified power format (UPF) file whichspecifies specific power data for the hierarchical electronic circuitdesign.

According to some embodiments, the power data file specifies a commonformat that many EDA tools (such as the logic synthesis tools, place androute tools, static timing analysis, formal verification, etc.) may useto specify power-specific data consistently because the power intentonly need be specified once in the power data file.

The power data file may comprise, for example, constructs for expressingpower domains and their respective power supplies in some embodiments.The constructs comprise hierarchical modules that may be specified asbelonging to specific power supply domains in some embodiments. Theconstructs may also comprise explicit power or ground nets andconnectivity for each cell or block in some embodiments. In addition theconstructs may also comprise various timing libraries data which may beespecially useful for cases where a cell is used in different powerdomains.

In addition or in the alternative, the power data file may comprisepower control logic for specifying switch logic and control signals,state-retention logic, level shifter logic, or isolation logic in someembodiments. The power data file may also comprise definitions orverification of power modes such as standby, sleep, etc. In addition,the power data file supports both the bottom-up and the top-down designand provide portability of design intent across various ED toolsincluding third-party EDA tools.

In some embodiments, the schematic module 110 performs all the functionsof the multi-power domain digital or mixed-signal process module 116(MPD DMS Process Module). In some embodiments, the multi-power domaindigital or mixed-signal block module 108 (MPD DMS Module) performs allthe functions of the schematic module 110. In other words, module 110and 108 may be the same in some embodiments. The multi-power domaindigital or mixed-signal block module 108 automatically generates thenet/terminal sets, from the action of reading, importing, orinterpreting (hereinafter referencing) the power data file 114, that areneeded to annotate the schematic(s) of the hierarchical electronicdesign which exhibit multiple power domains even for a plurality ofinstances of the same master module. In these embodiments, the referenceschematics or the leaf schematics are assumed to comprise at least therequisite net or terminal expressions.

For example, the method or the system may obtain the hierarchicallogical modules or constructs, which are specified in the power datafile as belonging to specific power domains, power or ground nets andconnectivity per cell or per block, level shifter logic, isolationlogic, etc. from the act of reading, importing, or interpreting thepower data file that are needed to annotate the schematic(s) of thehierarchical electronic design in some embodiments. In this manner, theschematic of the hierarchical electronic circuit design is associatedwith connectivity information for each level of a plurality ofhierarchies and may be used in an automated layout versus schematicverification.

The multi-power domain digital or mixed-signal block module 108 maycomprise a lookup property specification sub-module which is used tospecify the net/terminal sets. The multi-power domain digital ormixed-signal block module 108 may also comprise a global signalspecification sub-module which is used to specify the net/terminalexpressions. The multi-power domain digital or mixed-signal block module108 may further comprise the overriding property or global signalinformation specification sub-module which specifies an overridingnet/terminal expression or a net/terminal expression that may be used tooverride one or more default values of the global signals.

The modules 102, 104, 106, 108, 110, 112, 114, and 116 are located onone or more EDA (electronic design automation) tool sets. Themulti-power domain digital or mixed-signal block module 108 thenautomatically annotates various schematics of the hierarchicalelectronic design to provide the complete connectivity information withthe default or the overriding net/terminal sets such that the annotatedhierarchical electronic circuit design schematics together with thelayout from the layout process module 104 may be used for LVS(layout-versus-schematic). In these embodiments, one or more of theaforementioned actions create the net or terminal sets on variousinstances of the schematics, which comprise at least the correspondingnet or terminal expressions.

In various embodiments, a default net or terminal set specifies the netthat is to be used instead of the default net specified in the net orterminal expression. Furthermore, an overriding net or terminal setredefines a leaf cell net or terminal expression. In other words, anoverriding net or terminal set redefines the default name of the net andthe property name(s) in the associated net or terminal expression inthese embodiments. The multi-power domain digital or mixed-signal blockmodule 108 may also automatically annotate various schematics of thehierarchical electronic design to provide the complete connectivityinformation such that the annotated schematics may be used for low powersimulation. In various embodiments, the special purpose system comprisesat least some hardware components such as a specially programmedprocessor to perform specific functions or processes although somesub-modules as described above may be implemented as a pure softwaremodule, a pure hardware module, or a combination of software andhardware.

With reference to FIG. 9 which illustrates a high level diagram for aprocess for implementing multi-power domain digital or mixed-signalverification and low power simulation, the method or the systemcomprises the act or module of identifying a first hierarchical leveland a second hierarchical level of a hierarchical electronic circuitdesign at 902 in some embodiments. In these embodiments, each of thefirst hierarchical and the second hierarchical level comprises at leasta circuit component that is belongs to multiple power domains or issubject to multiple input voltages.

The method or the system for implementing multi-power domain digital ormixed-signal verification and low power simulation further comprises theact or module of reading a power data file at 904 in some embodiments.More details of the power data file will be described in subsequentparagraphs with reference to various figures. The method or the systemmay further comprise the act or module of automatically determining orinserting connectivity information in a schematic of the hierarchicalelectronic design at 906 in some embodiments. According to someembodiments, the act or module of 906 is based at least in part upon thepower data file. According to some embodiments, the act or module of 906is further based at least in part upon the hierarchical configuration ofthe hierarchical design.

The hierarchical configuration comprises information such as whichhierarchical level represents the component that is subject to multipleinput voltages in some embodiments. The hierarchical information mayalternatively or additionally comprise information such as the number oflevels between the level that represents the component subject tomultiple input voltages and the first level or the second level. Notethat in some embodiments, one of the first and the second level may bethe level that represents the component subject to multiple inputvoltages.

With reference to FIG. 2 which illustrates a more detailed diagram for aprocess for implementing multi-power domain digital or mixed-signalverification and low power simulation as illustrated in FIG. 9, themethod or the system comprises identifying a power data file at 202 in asingle embodiment or in some embodiments. In the single embodiment or insome embodiments, the power data file comprises a CPF file, an UPF file,or files in other formats serving similar purposes. The method or thesystem further comprises identifying a hierarchical electronic circuitdesign, such as an HDL description of an electronic circuit design at204. In the single embodiment or in some embodiments, the hierarchicalelectronic circuit design comprises multiple power domains even fordifferent instances of the same module. For example, the hierarchicalelectronic circuit design may comprise multiple instances of the sameinverter that are subject to different operating voltages.

The method or the system further comprises reading, importing, orinterpreting the power data file at 206. In the single embodiment or insome embodiments, the action or the module for reading, importing, orinterpreting the power data file 206 may comprise creating one or morenets and a plurality of power domains and associate each of the one ormore nets and a plurality of power domains with the respectiveinstances, ports, or pins. The action or the module 206 may furthercomprise specifying detailed implementation of the plurality of powerdomains. More details of specifying the detailed implementation of theplurality of power domains will be described in great details in theillustrative embodiments in the following paragraphs. The action or themodule 206 may also comprise specifying how to connect a global net tospecified pins, ports, or terminals.

In the single embodiment or in some embodiments, the method or thesystem for implementing multi-power domain digital or mixed-signalverification and low power simulation further comprises identifying oneor more schematics of various hierarchies of the hierarchical electroniccircuit design at 208. At 210, the method or the system for implementingmulti-power domain digital or mixed-signal verification and low powersimulation comprises automatically annotating the one or more schematicsof the hierarchical electronic circuit design with complete connectivityinformation in the single embodiment or in some embodiments.

The action or the module 210 may comprise specifying a look up propertyor an overriding net/terminal expression for inherited connections(net/terminal expression) at one or more inputs and outputs in aschematic of a first hierarchical level at 212. The action or module 210may also comprise specifying one or more special properties that areplaced on one or more instances of a schematic to define theirconnectivity by creating the default or overriding net or terminal setsto specify or redefine the property name(s) and the default net asspecified in the net or terminal expressions at 214. In other words, theaction or module 210 specifies or creates one or more default net orterminal sets or one or more overriding net or terminal sets on someinstances of the schematics based at least in part on the existing netor terminal expression(s) and the power data file. In these embodiments,the method or the system ensures that the connectivity information thatis derived or inferred from the net or terminal expressions or net orterminal sets is identical or equivalent to the connectivity informationderived or inferred from the power data file such as a common powerformat file or a unified power format file. Furthermore, once therequisite net or terminal sets or the overriding ones are generated, themethod or the system may dump netlists such as CDL (Circuit DescriptionLanguage) netlists such that the generated connectivity information fromthe net or terminal sets and the existing net or terminal expressionscorrectly represent the connectivity information that may be inferred orderived from the power data file.

The action or the module 210 may also comprise specifying one or moreoverriding power or ground signals in a second hierarchical level at216. In some embodiments, the second hierarchical level is lower thanthe first hierarchical level. As shown in the example as illustrated inFIGS. 5A-C, the first hierarchical level may comprise the schematic ofthe “TOP” module which comprises two SUB modules, each of whichcomprises an inverter which belongs to the second level of hierarchy inthe hierarchical electronic circuit design. At 218, the action or module210 may also comprise specifying one or more overriding net/terminalexpression for a component at a the component hierarchical level whereindifferent instances of the component are subject to different powerrequirements (such as voltages) in the hierarchical electronic circuitdesign.

At 220, the method or the system for implementing multi-power domaindigital or mixed-signal verification and low power simulation comprisesidentifying a layout of the hierarchical electronic circuit design. At222, the method or the system for implementing multi-power domaindigital or mixed-signal verification and low power simulation comprisesperforming LVS by performing, for example, extraction, reduction, andcomparison between the layout and the automatically annotatedschematics. The details of LVS are known to one of ordinary skill in theart and thus will not be elaborated here.

In the single embodiment or in some embodiments, one or more of the oneor more actions or modules, 212, 214, 216, and 218, need not beperformed. Whether or not a net/terminal set or an overridingnet/terminal expression needs to be specified or created for whichinstance(s) at which level of the hierarchy depends at least in part onwhat the hierarchical structure of the electronic circuit designcomprises, how the hierarchical structure of the electronic circuitdesign is organized, or whether not a reference cell library is allowedto be modified or annotated by the expressions or sets that areautomatically generated by referencing the power data file. More detailsof this aspect of various embodiments are described in great details inthe illustrative examples in the immediately following paragraphs.

With reference to FIG. 10 which illustrates more details about the actor module of reading a power data file of 904 in FIG. 9 or 206 in FIG.2, the action or the module for reading, importing, or interpreting thepower data file 206 or 904 may comprise the act or module of creatingone or more nets and a plurality of power domains and associate each theone or more nets and a plurality of power domains with the respectiveinstances, ports, or pins in the single embodiment or in someembodiments. The action or the module 206 or 904 may further comprisethe act or module of specifying detailed implementation of the pluralityof power domains. More details of specifying the detailed implementationof the plurality of power domains will be described in great details inthe illustrative embodiments in the following paragraphs. The action orthe module 206 or 904 may also comprise the act or module of specifyinghow to connect a global net to specified pins, ports, or terminals.

ILLUSTRATIVE EXAMPLES

FIGS. 3A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in one exemplaryimplementation of some embodiments. FIG. 3A illustrates a simplifiedview of a TOP cell or module in a hierarchical electronic circuitdesign. The TOP cell or module comprise two instances of the SUB cell ormodule, SUB and SUB i2. SUB i1 takes input from in1 and outputs to out1,and SUB i2 takes input from in2 and outputs to out2. Each of SUB i1 andSUB i2 comprises an instance of an inverter—INV i1 for SUB i1 and INV i2for SUB i2. FIG. 3B illustrates a simplified hierarchical representationof the TOP cell or module.

FIG. 3C illustrates an example of the method or the system forimplementing multi-power domain digital or mixed-signal verification andlow power simulation in some embodiments. In this example, the TOP cellis assumed to be a digital block. Nonetheless, the process disclosedherein also applies to mixed-signal or analog blocks. Furthermore, theexamples uses specific languages and codes, but one of ordinary skill inthe art clearly knows that other languages or codes may also be used toachieve similar purpose so the languages or codes are not to beconsidered as limiting the scope of various embodiments or the claims.

The Verilog description for the digital block may be expressed asfollows:

module sub ( in1, out1); input in1; output out1; INV i1(in1, out1);endmodule module top ( in1, in2, out1, out2); sub I1 (in1, out1); sub i2(in2, out2) endmodule

The power data file may be expressed as follows. Note that a CommonPower Format file is used in this example, but one of ordinary skill inthe art clearly knows that other formats of files, such as an UPF file,may also be used to achieve similar purposes.

set_design top create_power_nets -nets { VDD1 VDD2} create_ground_nets-nets {VSS1 VSS2} create_power_domain -name PD1 -default -instances i1create_power_domain -name PD2 -instances i2 update_power_domain -namePD1 -primary_power_net VDD1 -  primary_ground_net VSS1update_power_domain -name PD2 -primary_power_net VDD2 - primary_ground_net VSS2 create_global_connection -domain PD1 -net VSS1-pin VSS! create_global_connection -domain PD1 -net VDD1 -pin VDD!create_global_connection -domain PD2 -net VSS2 -pin VSS!create_global_connection -domain PD2 -net VDD2 -pin VDD! end_design

In the above CPF file, “set_design” specifies the name of the module towhich the power information in the CPF file applies—the TOP cell in thisexample. “create_power_nets” specifies or creates a list of power netswithin the current scope. “create_power_domain” creates a power domainand specifies the instances and boundary ports and pins that belong tothis power domain. In this example, two power domains, PD1 and PD2, arecreated for instances i1 and i2 respectively. “update_power_domain”specifies implementation aspects of the specified power domain.

“create_global_connection” specifies how to connect a global net to thespecified pins. A global net can be a data net, bias net, power net orground net. In this example, the VSS1 net is connected to pin/terminalVSS! In power domain PD1, VDD1 net is connected to pin/terminal VDD! inpower domain PD1, VSS2 net is connected to pin/terminal VSS! in powerdomain PD1, and VDD2 net is connected to pin/terminal VDD! in powerdomain PD2. Finally, “end_design” is used with a set_design command,groups a number of CPF commands that apply to the current design or topdesign. It shall be noted that the naming of the nets is not casesensitive in some embodiments. In other words, VDD1 and vdd1 may both beused to refer to the same net in these embodiments.

FIG. 3C(a) illustrates the symbol of an inverter. In this case, theinverter symbol is stored as a reference library for the inverter. FIG.3C(b) illustrates a schematic of the inverter which is stored as areference library for the inverter. Note that the method or the systemdoes not define or redefine the net/terminal set (in this example anetSet for the inverter) in FIG. 3C(b). FIG. 3C(c) illustrates theannotations of net/terminal expression (in this case a netexpression—netExpr) in the power and ground tap of the schematic. ThenetExpr, vdd [@pwr:%:vdd!], specifies that the power is defaulted tovdd!, and the netExpr, vss [@gnd:%:vss!], specifies that the ground isdefaulted to vss!.

FIG. 3C(d) illustrates the process that the method or the systemannotates the top cell with the overriding signal names where, forinstance i1, the power no longer defaults to vdd! but to vdd1, and theground no longer defaults to vss! but to vss1, and for instance i2, thepower no longer defaults to vdd! but to vdd2, and the ground no longerdefaults to vss! but to vss2. FIG. 3C(e) illustrates the schematic ofthe SUB cell or module in the block. It can be seen that the SUB cell ormodule receives no modification or annotation.

FIG. 3C(f) illustrates the schematic of the inverter in the referencelibrary, which is usually considered golden and thus does not allowmodification.) It can be seen from FIG. 3C(f) that the inverterschematic is not modified or annotated. FIG. 3C(g) illustrates that themethod or the system identifies the netExpr, vdd [@pwr:%:vdd!] and vss[@gnd:%:vss!] from the power and ground tap of the schematics. It shallbe noted that the power no longer defaults to vdd! but to vdd1 and vdd2due to the overriding net or terminal sets, “pwr=vdd1” and “pwr=vdd2”,and that the ground no longer defaults to vss! but to vss1 and vss2 dueto the overriding “gnd=vdd1” for i1 and “gnd=vss2” for i2. In thisexample, the two instances of the same inverter may belong to differentpower domain and may be subject to different power requirements.

FIGS. 4A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments. FIG. 4A illustrates a simplifiedview of a TOP cell or module in a hierarchical electronic circuitdesign. The TOP cell or module comprise two instances of the SUB cell ormodule, SUB i1 and SUB i2. SUB i1 takes input from in1 and outputs toout1, and SUB i2 takes input from in1 and outputs to out2. Each of SUBi1 and SUB i2 comprises an instance of an inverter—INV i1 for SUB i1 andINV i2 for SUB i2. FIG. 4B illustrates a simplified hierarchicalrepresentation of the TOP cell or module.

FIG. 4C illustrates a reference schematic that is designed in aparticular manner. In this example, the TOP cell is assumed to be adigital block. Nonetheless, the process disclosed herein also applies tomixed-signal or analog blocks. Furthermore, the examples uses specificlanguages and codes, but one of ordinary skill in the art clearly knowsthat other languages or codes may also be used to achieve similarpurpose so the languages or codes are not to be considered as limitingthe scope of various embodiments or the claims. Note that the referenceschematic as illustrated in FIG. 4C may prevent adding or creating oneor more net or terminal sets on higher level instances because thereference schematics as illustrated in FIG. 4C comprise net or terminalsets in the schematic for the INV i1 (or i2) level.

The Verilog description for the digital block may be expressed asfollows:

module sub ( in1, out1); input in1; output out1; INV i1(in1, out1);endmodule module top ( in1, in2, out1, out2); sub i1 (in1, out1); sub i2(in2, out2) endmodule

The power data file may be expressed as follows. Note that a CommonPower Format file is used in this example, but one of ordinary skill inthe art clearly knows that other formats of files, such as an UPF file,may also be used to achieve similar purposes.

set_design top create_power_nets -nets { VDD1 VDD2} create_ground_nets-nets {VSS1 VSS2} create_power_domain -name PD1 -default -instances i1create_power_domain -name PD2 -instances i2 update_power_domain -namePD1 -primary_power_net VDD1 -  primary_ground_net VSS1update_power_domain -name PD2 -primary_power_net VDD2 - primary_ground_net VSS2 create_global_connection -domain PD1 -net VSS1-pin VSS! create_global_connection -domain PD1 -net VDD1 -pin VDD!create_global_connection -domain PD2 -net VSS2 -pin VSS!create_global_connection -domain PD2 -net VDD2 -pin VDD! end_design

Note that two power domains, PD1 and PD2, are created in the aboveexample.

FIG. 4C(a) illustrates the symbol of an inverter. In this case, theinverter symbol is stored as a reference library for the inverter. FIG.4C(b) illustrates a schematic of the inverter which is stored as areference library for the inverter. Note that the method or the systemidentifies, defines, or redefines the net/terminal set (in this example,netSet) to be pwr=vddD and gnd=vssD in FIG. 4C(b). It shall be notedthat these approaches encourage a reference cell developer to use net orterminal set overrides while providing the freedom to a reference celldeveloper or designer to redefine the default set of a net or terminalexpression and also the freedom to a user or an integrator to overridesuch a default set. FIG. 4C(c) illustrates the annotations ofnet/terminal set (in this case a netSet) in the power and ground tap ofthe schematic. The netSet, vdd [@pwr:%:vdd!] or simply vdd, specifiesthat the power is defaulted to vdd!, and the netExpr, vss [@gnd:%:vss!],specifies that the ground is defaulted to vss!. It shall be noted thatthe square bracket “[@signs:%:sign]”, which is always present in anet/terminal expression, is not always present in a net or terminal set.In some embodiments, such square brackets are present in a net orterminal set only when such a net or terminal set is creating anoverride re-parameterization and specifying a new property name/defaultnet for the inherited connections search.

FIG. 4C(d) illustrates the process that the method or the systemannotates the top cell. FIG. 4C(e) illustrates the schematic of the SUBcell or module in the block. It can be seen that the SUB cell or modulereceives no modification or annotation. FIG. 4C(f) illustrates theschematic of the inverter in the reference library, which is usuallyconsidered golden and thus does not allow modification.) FIG. 4C(f)shows that the inverter schematic is annotated by the net/terminal set(in this example, netSet), pwr=vddD and gnd=vssD. Nonetheless, aspresented in the preceding paragraph(s) for FIG. 4C, the referenceschematics in FIG. 4C are designed differently from, for example, thereference schematics in FIG. 5C such that the method or the system maycreate the net or terminal sets at the TOP level schematic for the FIG.5C reference schematics, whereas the net or terminal sets are created ata lower (INV) level for the reference schematics in FIG. 4C.

FIG. 4C(g) illustrates that the method or the system automaticallygenerates, from reading the CPF file, the netExpr, vdd [@pwr:%:vdd!] andvss [@gnd:%:vss!], in the power and ground tap of the schematics. Itshall be noted that the CPF read may not be able to handle this case ifthe reference cells (e.g., the inverter) are considered as golden and donot allow modification such as annotations. Another approach to resolvethis class of circuit blocks is illustrated in FIGS. 5A-C with detaileddescription fully set forth below.

FIGS. 5A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments. FIG. 5A illustrates a simplifiedview of a TOP cell or module in a hierarchical electronic circuitdesign. The TOP cell or module comprise two instances of the SUB cell ormodule, SUB i1 and SUB i2. SUB i1 takes input from in1 and outputs toout1, and SUB i2 takes input from in2 and outputs to out2. Each of SUBi1 and SUB i2 comprises an instance of an inverter—INV i1 for SUB i1 andINV i2 for SUB i2. FIG. 5B illustrates a simplified hierarchicalrepresentation of the TOP cell or module.

FIG. 5C illustrates an example of the method or the system forimplementing multi-power domain digital or mixed-signal verification andlow power simulation in some embodiments. Note that the exemplaryschematics as shown in FIG. 5C are designed differently. Unlike thereference schematics in FIG. 4C, the reference schematics in FIG. 5Cspecify the net or terminal expressions on the INV level, and thus makethe specification of the net or terminal sets at the TOP level possible.In this example, the TOP cell is assumed to be a digital block.Nonetheless, the process disclosed herein also applies to mixed-signalor analog blocks. Furthermore, the examples uses specific languages andcodes, but one of ordinary skill in the art clearly knows that otherlanguages or codes may also be used to achieve similar purpose so thelanguages or codes are not to be considered as limiting the scope ofvarious embodiments or the claims.

The Verilog description for the digital block may be expressed asfollows:

module sub ( in1, out1); input in1; output out1; INV i1(in1, out1);endmodule module top ( in1, in2, out1, out2); sub I1 (in1, out1); sub i2(in2, out2) endmodule

The power data file may be expressed as follows. Note that a CommonPower Format file is used in this example, but one of ordinary skill inthe art clearly knows that other formats of files, such as an UPF file,may also be used to achieve similar purposes.

set_design top create_power_nets -nets { VDD1 VDD2} create_ground_nets-nets {VSS1 VSS2} create_power_domain -name PD1 -default -instances i1create_power_domain -name PD2 -instances i2 update_power_domain -namePD1 -primary_power_net VDD1 -  primary_ground_net VSS1update_power_domain -name PD2 -primary_power_net VDD2 - primary_ground_net VSS2 create_global_connection -domain PD1 -net VSS1-pin VSS! create_global_connection -domain PD1 -net VDD1 -pin VDD!create_global_connection -domain PD2 -net VSS2 -pin VSS!create_global_connection -domain PD2 -net VDD2 -pin VDD! end_design

Note that two power domains, PD1 and PD2, are created in the aboveexample.

FIG. 5C(a) illustrates the symbol of an inverter. In this case, theinverter symbol is stored as a reference library for the inverter. FIG.5C(b) illustrates a schematic of the inverter which is stored as areference library for the inverter. Note that the method or the systemobtains pwr=[@pwr_ovr:%:vdd!] and gnd=[@gnd_ovr:%:vss!] in FIG. 5C(b)from the reference schematics. These net or terminal sets obtained fromthe reference schematics causes the generation of net or terminal setsat a higher hierarchical level (TOP level in this example) such as thenet or terminal sets on the TOP level as shown in FIG. 5C(d) below.

FIG. 5C(c) illustrates the annotations of net/terminal expression (inthis case a netExpr) in the power and ground tap of the schematic. ThenetExpr, vdd [@pwr:%:vddD!], specifies that the power is defaulted tovddD!, and the netExpr, vss [@gnd:%:vssD!], specifies that the ground isdefaulted to vssD!. FIG. 5C(d) illustrates the process that the methodor the system annotates the top cell by defining or redefining thenet/terminal set (in this example, the netSet) pwr_ovr=vdd1 andgnd_ovr=vss1 for cell i1 and pwr_ovr=vdd2 and gnd_ovr=vss2 for cell i2in the top schematic. These annotations provide that the names of theoverriding power are to be vdd1 and vdd2 for i1 and i2 respectively, andthe names of the overriding ground are to be vss1 and vss2 for i1 and i2respectively.

FIG. 5C(e) illustrates the schematic of the SUB cell or module in theblock. It can be seen that the SUB cell or module receives nomodification or annotation. FIG. 5C(f) illustrates the schematic of theinverter in the reference library, which is usually considered goldenand thus does not allow modification.) Nonetheless, it can be seen fromFIG. 5C(f) that the inverter schematic is annotated by the overridingnet/terminal expression (in this example, netSet or an overridingnetExpr), pwr=[@pwr_ovr:%:vdd!] and gnd=[@gnd_ovr:%:vss!].

FIG. 5C(g) illustrates that the method or the system automaticallygenerates, from reading the CPF file, the netExpr, vdd [@pwr:%:vdd!] andvss [@gnd:%:vss!], in the power and ground tap of the schematics. Inthis example as illustrated in FIGS. 5A-C, the netSet netExpr[pwr_ovr:%:vdd!] defaults to net vdd! because no netSet in the upperhierarchy. The CPF's specification, by “create_global_connection-domainPD1-net VDD1-pin VDD!, specifies vdd! as the target CPF pin.Furthermore, the CPF import/read automatically creates netSet“pwr_ovr=vdd1” on instance i1. The same also applies to instance i2.That is, by annotating the reference cell library (in this case, theinverter schematic), the schematic may comprise i1 and i2 which belongto different power domains (PD1 and PD2 respectively.)

FIGS. 6A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments where the hierarchical electroniccircuit design comprises more hierarchical levels than the example asillustrated in FIGS. 5A-C.

FIG. 6A illustrates a simplified view of a TOP cell or module in ahierarchical electronic circuit design. The TOP cell or module comprisesa single instance of the MID cell or module, MID i1. The MID i1comprises, at the next hierarchy, two instances of the SUB cell ormodule, SUB i1 and SUB i2. SUB i1 takes input from in1 and outputs toout1, and SUB i2 takes input from in2 and outputs to out2. Each of SUBi1 and SUB i2 comprises an instance of an inverter—INV i1 for SUB i1 andINV i2 for SUB i2. FIG. 6B illustrates a simplified hierarchicalrepresentation of the TOP cell or module.

FIG. 6C illustrates an example of the method or the system forimplementing multi-power domain digital or mixed-signal verification andlow power simulation in some embodiments. In this example, the TOP cellis assumed to be a digital block. Nonetheless, the process disclosedherein also applies to mixed-signal or analog blocks. Furthermore, theexamples uses specific languages and codes, but one of ordinary skill inthe art clearly knows that other languages or codes may also be used toachieve similar purpose so the languages or codes are not to beconsidered as limiting the scope of various embodiments or the claims.

The Verilog description for the digital block may be expressed asfollows:

Module sub (in1, out1); INV i1(in1, out1); endmodule module mid ( in1,out1); input in1; output out1; sub i1(in1, out1); sub i2(in1, out1)endmodule module top ( in1, in2); mid i1 (in1, out1); endmodule

The power data file may be expressed as follows. Note that a CommonPower Format file is used in this example, but one of ordinary skill inthe art clearly knows that other formats of files, such as an UPF file,may also be used to achieve similar purposes.

set_design top create_power_nets -nets { VDD1 VDD2} create_ground_nets-nets {VSS1 VSS2} create_power_domain -name PD1 -default -instancesi1.i1 create_power_domain -name PD2 -instances i1.i2 update_power_domain-name PD1 -primary_power_net VDD1 -  primary_ground_net VSS1update_power_domain -name PD2 -primary_power_net VDD2 - primary_ground_net VSS2 create_global_connection -domain PD1 -net VSS1-pin VSS! create_global_connection -domain PD1 -net VDD1 -pin VDD!create_global_connection -domain PD2 -net VSS2 -pin VSS!create_global_connection -domain PD2 -net VDD2 -pin VDD! end_design

Note that two power domains, PD1 and PD2, are created in the aboveexample.

FIG. 6C(a) illustrates the symbol of an inverter. In this case, theinverter symbol is stored as a reference library for the inverter. FIG.6C(b) illustrates a schematic of the inverter which is stored as areference library for the inverter. Note that the method or the systemdoes not define or redefine the net/terminal set or net/terminalexpression in FIG. 6C(b).

FIG. 6C(c) illustrates the annotations of net/terminal expression (inthis case a netExpr) in the power and ground tap of the schematic. ThenetExpr, vdd [@pwr:%:vdd!], specifies that the power is defaulted tovdd!, and the netExpr, vss [@gnd:%:vss!], specifies that the ground isdefaulted to vss!. FIG. 6C(d) illustrates that the method or the systemdoes not annotate the top cell.

FIG. 6C(e) illustrates the schematic of the SUB cell or module in theblock. It can be seen that the method or the system defines or redefinesthe net/terminal set (in this example netSet) pwr=vdd1 and gnd=vss1 forinstance i1 and pwr=vdd2 and gnd=vss2 for instance i2 in the schematicof the MID cell or module. FIG. 6C(f) illustrates the schematic of theSUB cell or module which does not receive definition or redefinition ofnet/terminal expressions or net/terminal set.

FIG. 6C(g) illustrates the schematics of the inverter as a referencelibrary which does not receive definition or redefinition ofnet/terminal expressions or net/terminal set. In this example, theoverriding net/terminal set (pwr=vdd1 and gnd=vss1 for instance i1 andpwr=vdd2 and gnd=vss2 for instance i2) is defined at the MID cell whichbelongs to the second hierarchy level from the top. Unlike the previousexample as illustrated in FIGS. 5A-C, the example as illustrated inFIGS. 6A-C comprises at least one additional hierarchical level betweenthe two instances of the inverter, INV i1 and INV i2, and the highestlevel (for the block of interest) to which the TOP cell or modulebelongs.

In some embodiments where annotation of the schematic of a referencecell library is permitted, the method or the system may define orredefine the net/terminal set (in these embodiments, netSet) to bepwr_ovr=vdd1 and gnd_ovr=vss1 for instance i1 and pwr_ovr=vdd2 andgnd_ovr=vss2 for instance i2 in the schematic of the MID cell or modulein FIG. 6C(e) and the overriding net/terminal expressions (in theseembodiments, an overriding netExpr) netExpr pwr=[@pwr_ovr:%:vdd!] andnetExpr gnd=[@gnd_ovr:%:vss!] in the schematic of the inverter in FIG.6C(g).

FIGS. 7A-C respectively illustrate the hierarchical digital ormixed-signal block, the hierarchical structure of the functional modulesin the digital or mixed-signal block, and the process for generating andmapping the net/terminal sets and net/terminal expressions to schematicsof the hierarchical electronic circuit design in another exemplaryimplementation of some embodiments comprising different power domains ondifferent occurrences of the same instance. FIG. 7A illustrates asimplified view of a TOP cell or module in a hierarchical electroniccircuit design. The TOP cell or module comprises two instances of theMID cell or module, MID i1 and MID i2. The MID i1 comprises, at the nexthierarchy, a single instance of the SUB cell or module, SUB i1, and theMID i2 comprises a single instance of the SUB cell or module, SUB i2.SUB i1 takes input from in1 and outputs to out1, and SUB i2 takes inputfrom in2 and outputs to out2. Each of SUB i1 and SUB i2 comprises twoinstances of an inverter—INV i1 and Inv I2. FIG. 7B illustrates asimplified hierarchical representation of the TOP cell or module.

FIG. 7C illustrates an example of the method or the system forimplementing multi-power domain digital or mixed-signal verification andlow power simulation in some embodiments. In this example, the TOP cellis assumed to be a digital block. Nonetheless, the process disclosedherein also applies to mixed-signal or analog blocks. Furthermore, theexamples uses specific languages and codes, but one of ordinary skill inthe art clearly knows that other languages or codes may also be used toachieve similar purpose so the languages or codes are not to beconsidered as limiting the scope of various embodiments or the claims.

The Verilog description for the digital block may be expressed asfollows:

Module sub (in1, out1); INV i1(in1, out1); INV i2(in1, out1); endmodulemodule mid ( in1, out1); input in1; output out1; sub i1(in1, out1);endmodule module top ( in1, in2, out1, out2); mid i1(in1, out1); midi2(in2 out2); endmodule

The power data file may be expressed as follows. Note that a CommonPower Format file is used in this example, but one of ordinary skill inthe art clearly knows that other formats of files, such as an UPF file,may also be used to achieve similar purposes.

set_design top create_power_nets -nets { VDD1 VDD2} create_ground_nets-nets {VSS1 VSS2} create_power_domain -name PD1 -default -instancesi1.i1.i1 i2.i1.i2 create_power_domain -name PD2 -instances i1.i1.i2i2.i1.i1 update_power_domain -name PD1 -primary_power_net VDD1 - primary_ground_net VSS1 update_power_domain -name PD2-primary_power_net VDD2 -  primary_ground_net VSS2create_global_connection -domain PD1 -net VSS1 -pin VSS!create_global_connection -domain PD1 -net VDD1 -pin VDD!create_global_connection -domain PD2 -net VSS2 -pin VSS!create_global_connection -domain PD2 -net VDD2 -pin VDD! end_design

Note that two power domains, PD1 and PD2, are created in the aboveexample.

FIG. 7C(a) illustrates the symbol of an inverter. In this case, theinverter symbol is stored as a reference library for the inverter. FIG.7C(b) illustrates a schematic of the inverter which is stored as areference library for the inverter. Note that the method or the systemdoes not define or redefine the net/terminal set or net/terminalexpression in FIG. 7C(b).

FIG. 7C(c) illustrates the annotations of net/terminal expression (inthis case a netExpr) in the power and ground tap of the schematic. ThenetExpr, vdd [@pwr:%:vdd!], specifies that the power is defaulted tovdd!, and the netExpr, vss [@gnd:%:vss!], specifies that the ground isdefaulted to vss!.

FIG. 7C(d) illustrates that the method or the system annotate theschematics of the top cell with some net/terminal sets (in this example,netSet). Because the TOP cell or module comprises two instances of theMID cell or module, MID i1 and MID i2, the method or the systemautomatically generates the net/terminal sets (in this example, netSet)from reading, importing, or interpreting the CPF file and annotates theschematic of the TOP cell or module by defining or redefiningpwr_ovr1=vdd1, pwr_ovr2=vdd1, gnd_ovr1=vss1, and gnd_ovr2=vss1 forinstance i1, and pwr_ovr1=vdd2, pwr_ovr2=vdd2, gnd_ovr1=vss2, andgnd_ovr2=vss2 for instance i2 in the top level of the hierarchy (of theblock of interest) to which the TOP cell or module belongs.

FIG. 7C(e) illustrates the schematic of the SUB cell or module in theblock. It can be seen that the method or the system does not defines orredefines any net/terminal expressions or sets or overridingnet/terminal expressions for the schematic of the MID cell or module.

FIG. 7C(f) illustrates the schematics of the SUB module which comprisestwo instances of the inverter, INV i1 and INV i2. Note that the methodor the system automatically generates the net/terminal sets (in thisexample, netSet) from reading, importing, or interpreting the CPF fileand annotates the schematic of the schematic of the SUB module bydefining or redefining the net/terminal expression (in this example,netExpr) to be netExpr pwr=[@pwr_ovr1:%:vdd!] and netExprgnd=[@gnd_ovr1:% vss!] for instance INV i1 and netExprpwr=[@pwr_ovr2:%:vdd!] and netExpr gnd=[@gnd_ovr2:% vss!] for instanceINV i2 in the schematic of the SUB cell or module.

FIG. 7C(g) illustrates the schematics of the inverter as a referencelibrary which does not receive definition or redefinition ofnet/terminal expressions or net/terminal set. In this example asillustrated in FIGS. 7A-C, the reference cell library (the inverter inthis example) is not modified or annotated by the method or the system.Therefore, this approach applies whether or not the reference celllibraries can be modified.

In the foregoing specification, the invention has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes may be made thereto withoutdeparting from the broader spirit and scope of the invention. Forexample, the above-described process flows are described with referenceto a particular ordering of process actions. However, the ordering ofmany of the described process actions may be changed without affectingthe scope or operation of the invention. The specification and drawingsare, accordingly, to be regarded in an illustrative rather thanrestrictive sense.

System Architecture Overview

FIG. 8 illustrates a block diagram of an illustrative computing system1400 suitable for implementing an embodiment of the present invention.Computer system 1400 includes a bus 1406 or other communicationmechanism for communicating information, which interconnects subsystemsand devices, such as processor 1407, system memory 1408 (e.g., RAM),static storage device 1409 (e.g., ROM), disk drive 1410 (e.g., magneticor optical), communication interface 1414 (e.g., modem or Ethernetcard), display 1411 (e.g., CRT or LCD), input device 1412 (e.g.,keyboard), and cursor control (not shown).

According to one embodiment of the invention, computer system 1400performs specific operations by one or more processor or processor cores1407 executing one or more sequences of one or more instructionscontained in system memory 1408. Such instructions may be read intosystem memory 1408 from another computer readable/usable storage medium,such as static storage device 1409 or disk drive 1410. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the invention. Thus,embodiments of the invention are not limited to any specific combinationof hardware circuitry and/or software. In one embodiment, the term“logic” shall mean any combination of software or hardware that is usedto implement all or part of the invention.

Various actions as described in the preceding paragraphs may beperformed by using one or more processors, one or more processor cores,or combination thereof 1407. For example, the act of specifying variousnet or terminal sets or the act or module of performing verification orsimulation, etc. may be performed by one or more processors, one or moreprocessor cores, or combination thereof.

The term “computer readable storage medium” or “computer usable storagemedium” as used herein refers to any medium that participates inproviding instructions to processor 1407 for execution. Such a mediummay take many forms, including but not limited to, non-volatile mediaand volatile media. Non-volatile media includes, for example, optical ormagnetic disks, such as disk drive 1410. Volatile media includes dynamicmemory, such as system memory 1408.

Common forms of computer readable storage media includes, for example,electromechanical disk drives (such as a floppy disk, a flexible disk,or a hard disk), a flash-based, RAM-based (such as SRAM, DRAM, SDRAM,DDR, MRAM, etc.), or any other solid-state drives (SSD), magnetic tape,any other magnetic or magneto-optical medium, CD-ROM, any other opticalmedium, any other physical medium with patterns of holes, RAM, PROM,EPROM, FLASH-EPROM, any other memory chip or cartridge, or any othermedium from which a computer can read.

In an embodiment of the invention, execution of the sequences ofinstructions to practice the invention is performed by a single computersystem 1400. According to other embodiments of the invention, two ormore computer systems 1400 coupled by communication link 1415 (e.g.,LAN, PTSN, or wireless network) may perform the sequence of instructionsrequired to practice the invention in coordination with one another.

Computer system 1400 may transmit and receive messages, data, andinstructions, including program, i.e., application code, throughcommunication link 1415 and communication interface 1414. Receivedprogram code may be executed by processor 1407 as it is received, and/orstored in disk drive 1410, or other non-volatile storage for laterexecution. In an embodiment, the computer system 1400 operates inconjunction with a data storage system 1431, e.g., a data storage system1431 that contains a database 1432 that is readily accessible by thecomputer system 1400. The computer system 1400 communicates with thedata storage system 1431 through a data interface 1433. A data interface1433, which is coupled to the bus 1406, transmits and receiveselectrical, electromagnetic or optical signals that include data streamsrepresenting various types of signal information, e.g., instructions,messages and data. In embodiments of the invention, the functions of thedata interface 1433 may be performed by the communication interface1414.

In the foregoing specification, the invention has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes may be made thereto withoutdeparting from the broader spirit and scope of the invention. Forexample, the above-described process flows are described with referenceto a particular ordering of process actions. However, the ordering ofmany of the described process actions may be changed without affectingthe scope or operation of the invention. The specification and drawingsare, accordingly, to be regarded in an illustrative rather thanrestrictive sense.

1. A computer implemented method for implementing multi-power domain digital or mixed-signal verification and low power simulation of an electronic circuit design, comprising: using a computer system which comprises at least one processor and is programmed for performing: identifying one or more schematics of the electronic circuit design; automatically generating one or more net or terminal sets, or one or more overriding net or terminal sets for the one or more schematics of the electronic circuit design by referencing a power data file for the electronic circuit design; and performing verification or simulation of the electronic circuit design by using at least the one or more net or terminal sets or one or more overriding net or terminal sets.
 2. The computer implemented method of claim 1, wherein the power data file is in a common power format or a unified power format.
 3. The computer implemented method of claim 1, wherein the power intent data or information comprises connectivity information.
 4. The computer implemented method of claim 1, wherein the act of referencing the power data file comprises: creating nets or the multiple power domains; and associating respective instances, ports, or pins with the nets or the multiple power domains.
 5. The computer implemented method of claim 4, wherein the act of referencing the power data file comprises: specifying implementation of the multiple power domains.
 6. The computer implemented method of claim 5, wherein the act of referencing the power data file comprises: specifying or causing to specify the connectivity information between one or more pins and a global net.
 7. The computer implemented method of claim 1, wherein the act of determining or identifying power intent data or information comprises: specifying or causing to specify a net or terminal expression in a power or ground tap schematic.
 8. The computer implemented method of claim 7, wherein the act of determining or identifying power intent data or information comprises: specifying a net or terminal set at the first hierarchical level.
 9. The computer implemented method of claim 7, wherein the act of determining or identifying power intent data or information comprises: specifying or causing to specify an overriding net or terminal expression at the second hierarchical level.
 10. The computer implemented method of claim 9, wherein the second level of hierarchical represents one hierarchy level higher than a lowest level that comprises the at least one circuit component in the hierarchical electronic circuit design.
 11. The computer implemented method of claim 9, wherein the second level of hierarchical represents a lowest level that comprises the at least one circuit component in the hierarchical electronic circuit design.
 12. The computer implemented method of claim 8, wherein no net or terminal expression is specified in other hierarchical levels of a cell comprising the at least one circuit component.
 13. The computer implemented method of claim 1, further comprising: specifying or causing to specify a net or terminal expression.
 14. The computer implemented method of claim 13, wherein the net or terminal expression is specified at a lowest hierarchical level comprising the at least one circuit component.
 15. The computer implemented method of claim 4, further comprising: obtaining a first connectivity information from the power data file; and generating a second connectivity information for the schematics by using the one or more net or terminal sets or the one or more overriding net or terminal sets, wherein the second connectivity information is identical to or equivalent to the first connectivity.
 16. The computer implemented method of claim 1, further comprising: obtaining a first connectivity information from the power data file; and generating a second connectivity information for the schematics by using the one or more net or terminal sets or the one or more overriding net or terminal sets, wherein the second connectivity information is identical to or equivalent to the first connectivity.
 17. A system for implementing multi-power domain digital or mixed-signal verification and low power simulation of an electronic circuit design, comprising: means for identifying one or more schematics of the electronic circuit design; means for automatically generating one or more one or more net or terminal sets or one or more overriding net or terminal sets for the one or more schematics of the electronic circuit design by referencing a power data file for the electronic circuit design; and at least one processor programmed for performing verification or simulation of the electronic circuit design by using at least the one or more net or terminal sets or the one or more overriding net or terminal sets.
 18. The system of claim 16, wherein the means for automatically generating one or more net or terminal sets or the one or more overriding net or terminal sets by referencing the power data file further comprises: means for creating nets or the multiple power domains; and means for associating respective instances, ports, or pins with the nets or the multiple power domains.
 19. The system of claim 16, further comprising: means for obtaining a first connectivity information from the power data file; and means for generating a second connectivity information for the schematics by using the one or more net or terminal sets or the one or more overriding net or terminal sets, wherein the second connectivity information is identical to or equivalent to the first connectivity.
 20. A computer program product comprising a computer readable storage medium having a sequence of instructions stored thereupon which, when executed by a processor, causes the processor to perform a process for implementing multi-power domain digital or mixed-signal verification and low power simulation of an electronic circuit design, the process comprising: using a computer system which comprises at least one processor and is programmed for performing: identifying one or more schematics of the electronic circuit design; automatically generating one or more net or terminal expressions, one or more net or terminal sets or one or more overriding net or terminal sets for the one or more schematics of the electronic circuit design by referencing a power data file for the electronic circuit design; and performing verification or simulation of the electronic circuit design by using at least the one or more net or terminal sets or one or more overriding net or terminal sets.
 21. The computer program product of claim 19, the process further comprising: obtaining a first connectivity information from the power data file; and generating a second connectivity information for the schematics by using the one or more net or terminal sets or the one or more overriding net or terminal sets, wherein the second connectivity information is identical to or equivalent to the first connectivity. 